package com.kylin.shared.enums;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 系统错误码 说明
 * 系统状态码由五位数字构成，0到10000为预留通用状态码,在该类中申明,其他模块自定义的在各个模块中申明，10000到19999位广告主相关状态码
 * ，20000到29999位资金相关状态码， 30000到39999为竞价相关状态码，40000到49999为Connector相关状态码，50000到59999为Monitor相关状态码。其余暂未分配
 * @author Damon S.
 */
@Getter
@RequiredArgsConstructor
public enum ResultCodeEnum {
    /*** 状态成功 */
    SUCCESS(2000, "成功"),
    /** 参数错误：1001-1999 */
    BAD_REQUEST(1001, "请求参数不合法"),
    /** 用户错误：2001-2999 */
    USER_NOT_LOGGED(2001, "用户未登录"),
    USER_LOGIN_ERROR(2002, "账号不存在或密码错误"),
    USER_FORBIDDEN(2003, "账号已被禁用"),
    USER_EXISTED(2004, "用户已存在"),
    USER_NOT_EXIST(2005, "用户不存在"),
    /** 鉴权错误：3001-3999 */
    AUTH_FAIL(3001, "鉴权失败"),
    TOKEN_INVALID(3002, "token失效"),
    NOT_FOUND(3003, "未找到指定对象"),
    INTERNAL_ERROR(3004, "服务器异常"),
    /** 其他错误: 5001-5999 */
    BIZ_ERROR(5001, "业务逻辑异常"),
    DATA_ERROR(5003, "数据错误");

    private final Integer code;
    private final String message;
}

